package cn.iocoder.yudao.module.mqtt.dal.dataobject.mqtt;

import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.time.LocalDateTime;

/**
 * MQTT消息记录 DO
 *
 * @author 芋道源码
 */
@TableName("mqtt_message")
@KeySequence("mqtt_message_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MqttMessageDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * MQTT配置ID
     */
    private Long mqttConfigId;
    /**
     * 主题
     */
    private String topic;
    /**
     * 消息内容
     */
    private String payload;
    /**
     * 服务质量
     */
    private Integer qos;
    /**
     * 是否保留消息
     */
    private Boolean retained;
    /**
     * 消息方向：IN-接收，OUT-发送
     */
    private String direction;
    /**
     * 客户端ID
     */
    private String clientId;
    /**
     * 消息ID
     */
    private String messageId;
    /**
     * 时间戳
     */
    private LocalDateTime timestamp;

} 